package com.rc.saas.tenant.model.rc;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.rc.saas.tenant.base.BaseModel;
import java.math.BigDecimal;
import java.util.Date;

public class RcOperatorAccount extends BaseModel {

    @ExcelIgnore
    private Long operatorAccountId;

    @ExcelIgnore
    private Long operatorId;

    @ExcelIgnore
    private String tenantCode;

    @ExcelProperty(value = "加盟商",index = 1)
    private String operatorName;

    @ExcelProperty(value = "联系电话",index = 3)
    private String mobile;

    @ExcelProperty(value = "负责人",index = 2)
    private String nickname;

    @ExcelProperty(value = "结算订单号",index = 0)
    private String orderNum;

    @ExcelProperty(value = "本月结算金额",index = 4)
    private BigDecimal amount;

    @ExcelIgnore
    private String month;

    /**
     * 结算状态（0:未结算，1:结算通过，2:结算驳回）
     */
    @ExcelProperty(value = "结算状态",index = 5, converter = OperatorAccountStatusConverter.class)
    private String status;

    @ExcelIgnore
    private Date finishTime;

    @DateTimeFormat(value = "yyyy-MM-dd")
    @ExcelProperty(value = "创建时间",index = 6)
    private Date createdTime;

    @ExcelIgnore
    private String createdBy;

    @ExcelIgnore
    private String lastUpdatedBy;

    @ExcelIgnore
    private Date lastUpdatedTime;

    public RcOperatorAccount() {
    }

    public RcOperatorAccount(Long operatorId, String tenantCode, String operatorName, String mobile,
                             String nickname, String orderNum, BigDecimal amount, String month) {
        this.operatorId = operatorId;
        this.tenantCode = tenantCode;
        this.operatorName = operatorName;
        this.mobile = mobile;
        this.nickname = nickname;
        this.orderNum = orderNum;
        this.amount = amount;
        this.month = month;
        this.status = "0";
        this.createdTime = new Date();
        this.createdBy = "admin";
    }

    public Long getOperatorAccountId() {
        return operatorAccountId;
    }

    public void setOperatorAccountId(Long operatorAccountId) {
        this.operatorAccountId = operatorAccountId;
    }

    public Long getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getMonth() {
        return month;
    }

    public void setMonth(String month) {
        this.month = month;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }
}
